@file:JsQualifier("workspace")
@file:JsModule("vscode")
@file:JsNonModule
@file:Suppress("INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS")
package vsocde.workspace


import WorkspaceFolder
import WorkspaceFoldersChangeEvent
import Thenable
import TextDocumentChangeEvent
import TextDocumentWillSaveEvent
import NotebookDocument
import NotebookData
import NotebookDocumentChangeEvent
import NotebookDocumentWillSaveEvent
import NotebookSerializer
import NotebookDocumentContentOptions
import FileWillCreateEvent
import FileCreateEvent
import FileWillDeleteEvent
import FileDeleteEvent
import FileWillRenameEvent
import FileRenameEvent
import `T$63`
import ConfigurationChangeEvent
import org.khronos.webgl.Uint8Array
import vscode.*

external var fs: FileSystem

external var rootPath: String?

external var workspaceFolders: Array<WorkspaceFolder>?

external var name: String?

external var workspaceFile: Uri?

external var onDidChangeWorkspaceFolders: Event<WorkspaceFoldersChangeEvent>

external fun getWorkspaceFolder(uri: Uri): WorkspaceFolder?

external fun asRelativePath(pathOrUri: String, includeWorkspaceFolder: Boolean = definedExternally): String

external fun asRelativePath(pathOrUri: String): String

external fun asRelativePath(pathOrUri: Uri, includeWorkspaceFolder: Boolean = definedExternally): String

external fun asRelativePath(pathOrUri: Uri): String

external interface `T$49` {
    var uri: Any
    var name: String?
        get() = definedExternally
        set(value) = definedExternally
}

external fun updateWorkspaceFolders(start: Number, deleteCount: Number?, vararg workspaceFoldersToAdd: `T$49`): Boolean

external fun createFileSystemWatcher(globPattern: dynamic/*string | RelativePattern*/, ignoreCreateEvents: Boolean = definedExternally, ignoreChangeEvents: Boolean = definedExternally, ignoreDeleteEvents: Boolean = definedExternally): FileSystemWatcher

external fun findFiles(include: dynamic/*string | RelativePattern*/, exclude: dynamic/*string | RelativePattern*/? = definedExternally, maxResults: Number = definedExternally, token: CancellationToken = definedExternally): Thenable<Array<Uri>>

external fun save(uri: Uri): Thenable<Uri?>

external fun saveAs(uri: Uri): Thenable<Uri?>

external fun saveAll(includeUntitled: Boolean = definedExternally): Thenable<Boolean>

external fun applyEdit(edit: WorkspaceEdit, metadata: WorkspaceEditMetadata = definedExternally): Thenable<Boolean>

external var textDocuments: Array<TextDocument>

external interface `T$50` {
    var encoding: String?
        get() = definedExternally
        set(value) = definedExternally
}

external fun openTextDocument(uri: Uri, options: `T$50` = definedExternally): Thenable<TextDocument>

external fun openTextDocument(uri: Uri): Thenable<TextDocument>

external fun openTextDocument(path: String, options: `T$50` = definedExternally): Thenable<TextDocument>

external fun openTextDocument(path: String): Thenable<TextDocument>

external interface `T$51` {
    var language: String?
        get() = definedExternally
        set(value) = definedExternally
    var content: String?
        get() = definedExternally
        set(value) = definedExternally
    var encoding: String?
        get() = definedExternally
        set(value) = definedExternally
}

external fun openTextDocument(options: `T$51` = definedExternally): Thenable<TextDocument>

external fun openTextDocument(): Thenable<TextDocument>

external fun registerTextDocumentContentProvider(scheme: String, provider: TextDocumentContentProvider): Disposable

external var onDidOpenTextDocument: Event<TextDocument>

external var onDidCloseTextDocument: Event<TextDocument>

external var onDidChangeTextDocument: Event<TextDocumentChangeEvent>

external var onWillSaveTextDocument: Event<TextDocumentWillSaveEvent>

external var onDidSaveTextDocument: Event<TextDocument>

external var notebookDocuments: Array<NotebookDocument>

external fun openNotebookDocument(uri: Uri): Thenable<NotebookDocument>

external fun openNotebookDocument(notebookType: String, content: NotebookData = definedExternally): Thenable<NotebookDocument>

external fun openNotebookDocument(notebookType: String): Thenable<NotebookDocument>

external var onDidChangeNotebookDocument: Event<NotebookDocumentChangeEvent>

external var onWillSaveNotebookDocument: Event<NotebookDocumentWillSaveEvent>

external var onDidSaveNotebookDocument: Event<NotebookDocument>

external fun registerNotebookSerializer(notebookType: String, serializer: NotebookSerializer, options: NotebookDocumentContentOptions = definedExternally): Disposable

external var onDidOpenNotebookDocument: Event<NotebookDocument>

external var onDidCloseNotebookDocument: Event<NotebookDocument>

external var onWillCreateFiles: Event<FileWillCreateEvent>

external var onDidCreateFiles: Event<FileCreateEvent>

external var onWillDeleteFiles: Event<FileWillDeleteEvent>

external var onDidDeleteFiles: Event<FileDeleteEvent>

external var onWillRenameFiles: Event<FileWillRenameEvent>

external var onDidRenameFiles: Event<FileRenameEvent>

external fun getConfiguration(section: String = definedExternally, scope: Uri? = definedExternally): WorkspaceConfiguration

external fun getConfiguration(): WorkspaceConfiguration

external fun getConfiguration(section: String = definedExternally): WorkspaceConfiguration

external fun getConfiguration(section: String = definedExternally, scope: TextDocument? = definedExternally): WorkspaceConfiguration

external fun getConfiguration(section: String = definedExternally, scope: WorkspaceFolder? = definedExternally): WorkspaceConfiguration

external fun getConfiguration(section: String = definedExternally, scope: `T$63`? = definedExternally): WorkspaceConfiguration

external var onDidChangeConfiguration: Event<ConfigurationChangeEvent>

external fun registerTaskProvider(type: String, provider: TaskProvider<Task>): Disposable

external interface `T$52` {
    var isCaseSensitive: Boolean?
        get() = definedExternally
        set(value) = definedExternally
    var isReadonly: dynamic /* Boolean? | MarkdownString? */
        get() = definedExternally
        set(value) = definedExternally
}

external fun registerFileSystemProvider(scheme: String, provider: FileSystemProvider, options: `T$52` = definedExternally): Disposable

external var isTrusted: Boolean

external var onDidGrantWorkspaceTrust: Event<Unit>

external fun decode(content: Uint8Array): Thenable<String>

external interface `T$53` {
    var encoding: String
}

external fun decode(content: Uint8Array, options: `T$53`): Thenable<String>

external interface `T$54` {
    var uri: Any
}

external fun decode(content: Uint8Array, options: `T$54`): Thenable<String>

external fun encode(content: String): Thenable<Uint8Array>

external fun encode(content: String, options: `T$53`): Thenable<Uint8Array>

external fun encode(content: String, options: `T$54`): Thenable<Uint8Array>